import { IPSModelObject } from '../ipsmodel-object';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSSubSysServiceAPIDEField
 */
export interface IPSSubSysServiceAPIDEField extends IPSModelObject {
  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 代码名称2
   * @type {string}
   */
  codeName2: string;

  /**
   * 数据类型
   * @description 值模式 [云实体属性数据类型（静态）（全部）] {ACID：自增标识，整数类型，用户不可见、 BIGINT：大整型、 CODELISTTEXT：选择项文本、 CURRENCY：货币、 CURRENCYUNIT：货币单位、 DATE：日期型、 DATETIME：日期时间型、 DATETIME_BIRTHDAY：出生日期、 DECIMAL：数值、 BIGDECIMAL：大数值、 FLOAT：浮点、 GUID：全局唯一标识，文本类型，用户不可见、 HTMLTEXT：HTML文本，没有长度限制、 INHERIT：继承属性、 INT：整型、 LONGTEXT：长文本，没有长度限制、 LONGTEXT_1000：长文本，长度1000、 NBID：数字串业务标识，数字类型，用户可见、 NMCODELIST：多项选择(数值)、 NSCODELIST：单项选择(数值)、 PICKUP：外键值、 PICKUPDATA：外键值附加数据、 PICKUPTEXT：外键值文本、 SBID：字符串业务标识，文本类型，用户可见、 SMCODELIST：多项选择(文本值)、 SSCODELIST：单项选择(文本值)、 TEXT：文本，可指定长度、 TEXT_EMAIL：电子邮件、 TIME：时间型、 TRUEFALSE：真假逻辑、 VARBINARY：二进制流，没有长度限制、 WFSTATE：工作流处理状态、 YESNO：是否逻辑、 ONE2MANYDATA：一对多关系数据集合、 ONE2MANYDATA_MAP：一对多关系数据集合（MAP）、 PICKUPOBJECT：外键值对象、 ONE2ONEDATA：一对一关系数据对象、 FILE：文件、 ONE2MANYOBJ：一对多动态对象、 ONE2MANYOBJ_MAP：一对多动态对象（MAP）、 ONE2ONEOBJ：一对一动态对象、 FILELIST：文件列表、 LONGFILELIST：文件列表，没有数量限制、 PICTURE：图片、 PICTURELIST：图片列表、 LONGPICTURELIST：图片列表，没有数量限制、 TEXTARRAY：文本数组、 TEXTARRAY2：文本数组（没有长度限制）、 INTARRAY：整形数组、 INTARRAY2：整形数组（没有长度限制）、 BIGINTARRAY：大整形数组、 BIGINTARRAY2：大整形数组（没有长度限制）、 FLOATARRAY：浮点数组、 FLOATARRAY2：浮点数组（没有长度限制）、 DECIMALARRAY：数值数组、 DECIMALARRAY2：数值数组（没有长度限制） }
   * @type {( string | 'ACID' | 'BIGINT' | 'CODELISTTEXT' | 'CURRENCY' | 'CURRENCYUNIT' | 'DATE' | 'DATETIME' | 'DATETIME_BIRTHDAY' | 'DECIMAL' | 'BIGDECIMAL' | 'FLOAT' | 'GUID' | 'HTMLTEXT' | 'INHERIT' | 'INT' | 'LONGTEXT' | 'LONGTEXT_1000' | 'NBID' | 'NMCODELIST' | 'NSCODELIST' | 'PICKUP' | 'PICKUPDATA' | 'PICKUPTEXT' | 'SBID' | 'SMCODELIST' | 'SSCODELIST' | 'TEXT' | 'TEXT_EMAIL' | 'TIME' | 'TRUEFALSE' | 'VARBINARY' | 'WFSTATE' | 'YESNO' | 'ONE2MANYDATA' | 'ONE2MANYDATA_MAP' | 'PICKUPOBJECT' | 'ONE2ONEDATA' | 'FILE' | 'ONE2MANYOBJ' | 'ONE2MANYOBJ_MAP' | 'ONE2ONEOBJ' | 'FILELIST' | 'LONGFILELIST' | 'PICTURE' | 'PICTURELIST' | 'LONGPICTURELIST' | 'TEXTARRAY' | 'TEXTARRAY2' | 'INTARRAY' | 'INTARRAY2' | 'BIGINTARRAY' | 'BIGINTARRAY2' | 'FLOATARRAY' | 'FLOATARRAY2' | 'DECIMALARRAY' | 'DECIMALARRAY2')}
   */
  dataType:
    | string
    | 'ACID'
    | 'BIGINT'
    | 'CODELISTTEXT'
    | 'CURRENCY'
    | 'CURRENCYUNIT'
    | 'DATE'
    | 'DATETIME'
    | 'DATETIME_BIRTHDAY'
    | 'DECIMAL'
    | 'BIGDECIMAL'
    | 'FLOAT'
    | 'GUID'
    | 'HTMLTEXT'
    | 'INHERIT'
    | 'INT'
    | 'LONGTEXT'
    | 'LONGTEXT_1000'
    | 'NBID'
    | 'NMCODELIST'
    | 'NSCODELIST'
    | 'PICKUP'
    | 'PICKUPDATA'
    | 'PICKUPTEXT'
    | 'SBID'
    | 'SMCODELIST'
    | 'SSCODELIST'
    | 'TEXT'
    | 'TEXT_EMAIL'
    | 'TIME'
    | 'TRUEFALSE'
    | 'VARBINARY'
    | 'WFSTATE'
    | 'YESNO'
    | 'ONE2MANYDATA'
    | 'ONE2MANYDATA_MAP'
    | 'PICKUPOBJECT'
    | 'ONE2ONEDATA'
    | 'FILE'
    | 'ONE2MANYOBJ'
    | 'ONE2MANYOBJ_MAP'
    | 'ONE2ONEOBJ'
    | 'FILELIST'
    | 'LONGFILELIST'
    | 'PICTURE'
    | 'PICTURELIST'
    | 'LONGPICTURELIST'
    | 'TEXTARRAY'
    | 'TEXTARRAY2'
    | 'INTARRAY'
    | 'INTARRAY2'
    | 'BIGINTARRAY'
    | 'BIGINTARRAY2'
    | 'FLOATARRAY'
    | 'FLOATARRAY2'
    | 'DECIMALARRAY'
    | 'DECIMALARRAY2';

  /**
   * 属性标记
   * @type {string}
   */
  fieldTag: string;

  /**
   * 属性标记2
   * @type {string}
   */
  fieldTag2: string;

  /**
   * 属性长度
   * @type {number}
   * @default 0
   */
  length: number;

  /**
   * 逻辑名称
   * @type {string}
   */
  logicName: string;

  /**
   * 属性精度
   * @type {number}
   * @default 0
   */
  precision: number;

  /**
   * 标准数据类型
   * @description 值模式 [属性标准数据类型] {0：UNKNOWN、 1：BIGINT、 2：BINARY、 3：BIT、 4：CHAR、 5：DATETIME、 6：DECIMAL、 7：FLOAT、 8：IMAGE、 9：INT、 10：MONEY、 11：NCHAR、 12：NTEXT、 13：NVARCHAR、 14：NUMERIC、 15：REAL、 16：SMALLDATETIME、 17：SMALLINT、 18：SMALLMONEY、 19：SQL_VARIANT、 20：SYSNAME、 21：TEXT、 22：TIMESTAMP、 23：TINYINT、 24：VARBINARY、 25：VARCHAR、 26：UNIQUEIDENTIFIER、 27：DATE、 28：TIME、 29：BIGDECIMAL }
   * @type {( number | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29)}
   */
  stdDataType: number | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29;

  /**
   * 允许空输入
   * @type {boolean}
   * @default true
   */
  allowEmpty: boolean;

  /**
   * 主键属性
   * @type {boolean}
   * @default false
   */
  keyDEField: boolean;

  /**
   * 主信息属性
   * @type {boolean}
   * @default false
   */
  majorDEField: boolean;
}
